<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">

	<title>ASLayoutSpec Class Reference</title>

	<link rel="stylesheet" href="../css/style.css">
	<meta name="viewport" content="initial-scale=1, maximum-scale=1.4">
	<meta name="generator" content="appledoc 2.2.1 (build 1334)">
</head>
<body class="appledoc">
	<header>
		<div class="container" class="hide-in-xcode">
			
			<h1 id="library-title">
				<a href="../index.html">  </a>
			</h1>

			<p id="developer-home">
				<a href="../index.html">Texture</a>
			</p>
			
		</div>
	</header>

	<aside>
		<div class="container">
			<nav>
				<ul id="header-buttons" role="toolbar">
					<li><a href="../index.html">Index</a></li>
<li><a href="../hierarchy.html">Hierarchy</a></li>

					<li id="on-this-page" role="navigation">
						<label>
							On This Page

							<div class="chevron">
								<div class="chevy chevron-left"></div>
								<div class="chevy chevron-right"></div>
							</div>

							<select id="jump-to">
	<option value="top">Jump To&#133;</option>
	
	<option value="overview">Overview</option>
	

	
	
	<option value="tasks">Tasks</option>
	
	

	
	
	<optgroup label="Properties">
		
		<option value="//api/name/child">child</option>
		
		<option value="//api/name/children">children</option>
		
		<option value="//api/name/isMutable">isMutable</option>
		
		<option value="//api/name/parent">parent</option>
		
	</optgroup>
	

	

	
	
</select>
						</label>
					</li>
				</ul>
			</nav>
		</div>
	</aside>

	<article>
		<div id="overview_contents" class="container">
			<div id="content">
				<main role="main">
					<h1 class="title">ASLayoutSpec Class Reference</h1>

					
					<div class="section section-specification"><table cellspacing="0"><tbody>
						<tr>
	<th>Inherits from</th>
	<td>NSObject</td>
</tr><tr>
	<th>Conforms to</th>
	<td><a href="../Protocols/ASLayoutElement.html">ASLayoutElement</a></td>
</tr><tr>
	<th>Declared in</th>
	<td>ASLayoutSpec.h</td>
</tr>
						</tbody></table></div>
					

                    
					
					<div class="section section-overview">
						<a title="Overview" name="overview"></a>
						<h2 class="subtitle subtitle-overview">Overview</h2>
						<p>A layout spec is an immutable object that describes a layout, loosely inspired by React.</p>
					</div>
					
					

					
					
					<div class="section section-tasks">
						<a title="Tasks" name="tasks"></a>
						

						
						

						<div class="task-list">
							<div class="section-method">
	<a name="//api/name/isMutable" title="isMutable"></a>
	<h3 class="method-title"><code><a href="#//api/name/isMutable">&nbsp;&nbsp;isMutable</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Creation of a layout spec should only happen by a user in layoutSpecThatFits:. During that method, a
layout spec can be created and mutated. Once it is passed back to ASDK, the isMutable flag will be
set to NO and any further mutations will cause an assert.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL isMutable</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASLayoutSpec.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/parent" title="parent"></a>
	<h3 class="method-title"><code><a href="#//api/name/parent">&nbsp;&nbsp;parent</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Parent of the layout spec</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nullable, nonatomic, weak) id&lt;ASLayoutElement&gt; parent</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASLayoutSpec.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/child" title="child"></a>
	<h3 class="method-title"><code><a href="#//api/name/child">&nbsp;&nbsp;child</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Adds a child to this layout spec using a default identifier.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nullable, strong, nonatomic) id&lt;ASLayoutElement&gt; child</code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>child</code></th>
						<td><p>A child to be added.</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Every ASLayoutSpec must act on at least one child. The ASLayoutSpec base class takes the
responsibility of holding on to the spec children. Some layout specs, like ASInsetLayoutSpec,
only require a single child.</p>

<p>For layout specs that require a known number of children (ASBackgroundLayoutSpec, for example)
a subclass should use this method to set the &ldquo;primary&rdquo; child. It can then use setChild:forIdentifier:
to set any other required children. Ideally a subclass would hide this from the user, and use the
setChild:forIdentifier: internally. For example, ASBackgroundLayoutSpec exposes a backgroundChild
property that behind the scenes is calling setChild:forIdentifier:.</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASLayoutSpec.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/children" title="children"></a>
	<h3 class="method-title"><code><a href="#//api/name/children">&nbsp;&nbsp;children</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Adds childen to this layout spec.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nullable, strong, nonatomic) NSArray&lt;id&lt;ASLayoutElement&gt; &gt; *children</code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>children</code></th>
						<td><p>An array of ASLayoutElement children to be added.</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Every ASLayoutSpec must act on at least one child. The ASLayoutSpec base class takes the
reponsibility of holding on to the spec children. Some layout specs, like ASStackLayoutSpec,
can take an unknown number of children. In this case, the this method should be used.
For good measure, in these layout specs it probably makes sense to define
setChild: and setChild:forIdentifier: methods to do something appropriate or to assert.</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASLayoutSpec.h</code></p>
			</div>
			
			
		</div>
	</div>
</div>
						</div>
						
					</div>
					
					

                    
                    
          
				</main>

				<footer>
					<div class="footer-copyright">
						
						<p class="copyright">Copyright &copy; 2016 Texture. All rights reserved. Updated: 2016-11-05</p>
						
						
						<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
						
					</div>
				</footer>
			</div>
		</div>
	</article>

	<script src="../js/script.js"></script>
</body>
</html>